#include <iostream>
#include <vector>
#include <string>
#include <cstring>
#include <algorithm>
#include <map>
#include <climits>

using namespace std;
typedef long long ll;
const int MOD=1e9+7;
ll q_pow(ll x,ll n){
    ll res=1;
    while(n>0){
        if(n&1) res=res*x%MOD;
        x=x*x%MOD;
        n>>=1;
    }
    return res;
}

int main(){
    int n,l;
    while(cin >> n >> l){
        if(0==n){
            break;
        }
        ll res=0;
        for(int i=1;i<=l;i++){
            res=(res+q_pow(n,i))%MOD;
        }
        cout << res<<endl;
    }



    return 0;
}